Computing environments, such as data centers, frequently employ cloud computing platforms, where “cloud” refers to a collective computing infrastructure that implements a cloud computing paradigm. For example, as per the National Institute of Standards and Technology, cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. Cloud-based data centers are deployed and managed by cloud service providers, who provide a computing environment for customers (tenants) to run their application programs (e.g. business applications or otherwise). The applications are typically run on one or more computing devices (i.e., host devices or hosts), and write data to and read data from one or more storage devices (e.g., hard disk drives, flash drives, etc.). The storage devices may be remote from the host devices such that they are connected via a communication network. However, some or all of the storage devices may be part of the same computing devices that implement the hosts.
Scheduling of the read and write requests, or input/output (TO) requests as they are also called, from the applications to the storage devices is managed by a software component known as an IO scheduler (also called a system IO scheduler). However, prior to an IO request with its dataset being submitted by the IO scheduler to the storage devices, it has become typical to apply one or more data services to the dataset that perform some form of data reduction on the dataset. For example, data reduction type data services may include, but are not limited to, data deduplication and data compression.